// DebugInfo.h: interface for the CDebugInfo class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DEBUGINFO_H__372011BD_0290_4CF7_8C91_320C4640A6DF__INCLUDED_)
#define AFX_DEBUGINFO_H__372011BD_0290_4CF7_8C91_320C4640A6DF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "windows.h"

#include <crtdbg.h>
#include <stdio.h>

// Marco
//------------------------------------------------------------------------------------

//#ifdef _DEBUG
#ifdef _DEBUG

#define DebugMsg( msg ) { _RPTF0( _CRT_WARN, msg ); }
#define DebugMsg1( msg, var ) { _RPTF1( _CRT_WARN, msg, var ); }
#define DebugMsg2( msg, var1, var2 ) { _RPTF2( _CRT_WARN, msg, var1, var2 ); }
#define DebugMsg3( msg, var1, var2, var3 ) { _RPTF3( _CRT_WARN, msg, var1, var2, var3 ); }
#define DebugMsg4( msg, var1, var2, var3, var4 ) { _RPTF4( _CRT_WARN, msg, var1, var2, var3, var4 ); }

//#define DebugFile( file, msg ) { fwrite(  ); }

#else

#define DebugMsg( msg ) 
#define DebugMsg1( msg, var ) 
#define DebugMsg2( msg, var1, var2 ) 
#define DebugMsg3( msg, var1, var2, var3 ) 
#define DebugMsg4( msg, var1, var2, var3, var4 ) 
#endif

void TraceFile(FILE *file, char *fmt, ...);
#ifdef _DEBUG
	void Trace(char *fmt, ...);
	#define ASSERT(x) {if(!(x)) _asm{int 0x03}}
//	#define VERIFY(x) {if(!(x)) _asm{int 0x03}}  // 译注：为调试版本时产生中断有效
#else
	#define ASSERT(x)
//	#define VERIFY(x) x              
	inline void Trace(LPCTSTR fmt, ...) { }
//	inline void TraceFile(FILE *file, char *fmt, ...) { };
#endif
	
#endif // !defined(AFX_DEBUGINFO_H__372011BD_0290_4CF7_8C91_320C4640A6DF__INCLUDED_)
